<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.HashSet" %><%--
  Created by IntelliJ IDEA.
  User: 62585
  Date: 2021/1/30
  Time: 11:22
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>jsp Test</title>
</head>
<body>

<%--声明脚本 用于声明该类的类属性、类方法--%>
<%!
    private int id;

    public int add(int a, int b) {
        return a + b;
    }
%>

<%--声明表达式，可以实现将表达式结果输出到页面中，比较常用--%>
<%--所有内容都会被翻译成out.print()--%>
<%= add(1, 2) %>

<%--代码脚本，在jsp中用Java编写自己需要的功能--%>
<%
    if (add(1, 2) > 3) System.out.println("Bigger than 3");
    else System.out.println("Smaller than 3");
%>

<%--三种注释方式--%>
<!--HTML注释方式 会用out.write输出到客户端，但不显示在用户界面上-->
<% // JAVA注释方式 会被翻译成Java源代码%>
<%--JSP注释方式 就是jsp的注释代码--%>

<%--四大域对象--%>
<%
    pageContext.setAttribute("key", "pageContext"); // 当前jsp页面有效
    request.setAttribute("key", "request");  // 当前请求有效
    session.setAttribute("key", "session");  // 当前会话有效，即当前打开的浏览器内都有效
    application.setAttribute("key", "application"); // 当前web工程有效，只要没关闭，就还有效
%>
<%=pageContext.getAttribute("key")%><br>
<%=request.getAttribute("key")%><br>
<%=session.getAttribute("key")%><br>
<%=application.getAttribute("key")%><br>
<%--<%--%>
<%--    request.getRequestDispatcher("/jsp2.jsp").forward(request, response);--%>
<%--%>--%>
<%
    out.print("out.print()"); // 将内容转换成String再输出到页面上，jsp一般用这个。
%>

<%--静态包含--%>
<%--静态包含的特点： 1、静态包含不会翻译被包含的 jsp 页面。 2、静态包含其实是把被包含的 jsp 页面的代码拷贝到包含的位置执行输出。--%>
<%--<%@include file="/footer.jsp" %>--%>

<%--动态包含--%>
<%--动态包含的特点：
1、动态包含会把包含的 jsp 页面也翻译成为 java 代码
2、动态包含底层代码使用如下代码去调用被包含的 jsp 页面执行输出。 JspRuntimeLibrary.include(request, response, "/include/footer.jsp", out, false);
3、动态包含，还可以传递参数--%>
<%--两种方法都可以--%>
<%--<jsp:include page="/footer.jsp"></jsp:include>--%>
<%--<jsp:include page="/footer.jsp"/>--%>
<%--    会用Java代码调用另一个jsp--%>

<%--动态包含传递参数--%>
<%--    会保存到request的param当中，不能把注释写到jsp里面，不然会出错的--%>
<%--<jsp:include page="/footer.jsp">--%>
<%--    <jsp:param name="key" value="value"/>--%>
<%--</jsp:include>--%>

<%--jsp请求转发--%>
<%--和request.getRequestDispatcher("/jsp2.jsp").forward(request, response);应该是一样的--%>
<jsp:forward page="/jsp2.jsp"></jsp:forward>


</body>
</html>
